package com.cupcorn.lib.game;

import org.andengine.entity.scene.ITouchArea;
import org.andengine.entity.scene.Scene;
import org.andengine.input.touch.TouchEvent;
import org.andengine.input.touch.detector.ClickDetector;
import org.andengine.input.touch.detector.ScrollDetector;

import android.view.KeyEvent;

public abstract class GameState
{
	protected GameEngine	engine;
	
	public GameState(GameEngine engine)
	{
		this.engine = engine;
	}
	
	public abstract void load();
	
	public abstract void init();
	
	public abstract void update(float deltaTime);
	
	public abstract void exit();
	
	public abstract boolean keyUp(int keyCode, KeyEvent event);
	
	public abstract void sceneTouch(Scene scene, TouchEvent touchEvent);
	
	public abstract boolean onAreaTouched(TouchEvent pSceneTouchEvent, ITouchArea pTouchArea, float pTouchAreaLocalX, float pTouchAreaLocalY);
	
	public abstract void click(ClickDetector clickDetector, int pointerID, float sceneX, float sceneY);
	
	public abstract void scrollStarted(ScrollDetector scrollDetector, int pointerID, float distanceX, float distanceY);
	
	public abstract void Scroll(ScrollDetector scrollDetector, int pointerID, float distanceX, float distanceY);
	
	public abstract void scrollFinished(ScrollDetector scrollDetector, int pointerID, float distanceX, float distanceY);
	
}
